package com.chap9;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class Example9_16 {
    public static void main(String[] args) {
        WindowMess win=new WindowMess();
        win.setTitle("带消息对话框的窗口");//标题
        win.setBounds(80,90,500,500);
    }
}
class WindowMess extends JFrame implements ActionListener{
    JTextField inputEnglish;//文本框对象
    JTextArea show;//文本区对象
    String regex="[a-zA-Z]+";//正则表达式，能匹配无限多的字母
    //https://blog.csdn.net/juzixiansheng/article/details/87867118
    WindowMess(){
        inputEnglish=new JTextField(22);//创建文本框
        inputEnglish.addActionListener(this);//this指向类WindowMess创建的当前对象的引用
        show=new JTextArea();//创建文本区对象
        setLayout(new BorderLayout());//布局方式
        add(inputEnglish,BorderLayout.NORTH);//添加文本框
        add(show,BorderLayout.CENTER);//添加文本区
        setVisible(true);
        setDefaultCloseOperation(this.EXIT_ON_CLOSE);//窗口关闭时默认关闭整个程序
    }
    @Override
    //实现接口方法
    public void actionPerformed(ActionEvent e) {
        //e.getSource 事件源的引用
        if(e.getSource()==inputEnglish){
            String str=inputEnglish.getText();//str存放getText返回的文本字符串的引用
            if(str.matches(regex)){//用正则表达式匹配字符串
                show.append(str+"\n");//在文本区中输出文本框中的字符串
                inputEnglish.setText(null);
            }
            else{//有非法字符
                //创建消息对话框:在当前窗口的正前面显示
                JOptionPane.showMessageDialog(null,
                        "你输入了非法字符","消息对话框",JOptionPane.WARNING_MESSAGE);
//                JOptionPane.showMessageDialog(this,
//                        "你输入了非法字符","消息对话框",JOptionPane.INFORMATION_MESSAGE);
//                JOptionPane.showMessageDialog(this,
//                        "你输入了非法字符","消息对话框",JOptionPane.ERROR_MESSAGE);
//                JOptionPane.showMessageDialog(this,
//                        "你输入了非法字符","消息对话框",JOptionPane.QUESTION_MESSAGE);
//                JOptionPane.showMessageDialog(this,
//                        "你输入了非法字符","消息对话框",JOptionPane.PLAIN_MESSAGE);
                inputEnglish.setText(null);//清空文本框
            }
        }
    }
}